home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_qt3.idb / usr / freeware / Qt / examples / trayicon / trayicon.h.z / trayicon.h
C/C++ Source or Header  |  2002-04-08  |  1KB  |  63 lines

  1. #ifndef TRAYICON_H
  2. #define TRAYICON_H
  3.  
  4. #ifndef QT_H
  5. #include <qobject.h>
  6. #include <qimage.h>
  7. #endif // QT_H
  8.  
  9. class QPopupMenu;
  10.  
  11. class TrayIcon : public QObject
  12. {
  13.     Q_OBJECT
  14.  
  15.     Q_PROPERTY( QString toolTip READ toolTip WRITE setToolTip )
  16.     Q_PROPERTY( QPixmap icon READ icon WRITE setIcon )
  17.  
  18. public:
  19.     TrayIcon( QObject *parent = 0, const char *name = 0 );
  20.     TrayIcon( const QPixmap &, const QString &, QPopupMenu *popup = 0, QObject *parent = 0, const char *name = 0 );
  21.     ~TrayIcon();
  22.  
  23.     // Set a popup menu to handle RMB
  24.     void        setPopup( QPopupMenu * );
  25.     QPopupMenu*        popup() const;
  26.  
  27.     QPixmap        icon() const;
  28.     QString        toolTip() const;
  29.  
  30. public slots:
  31.     void        setIcon( const QPixmap &icon );
  32.     void        setToolTip( const QString &tip );
  33.  
  34.     void        show();
  35.     void        hide();
  36.  
  37. signals:
  38.     void        clicked( const QPoint& );
  39.     void        doubleClicked( const QPoint& );
  40.  
  41. protected:
  42.     bool        event( QEvent * );
  43.     virtual void    mouseMoveEvent( QMouseEvent *e );
  44.     virtual void    mousePressEvent( QMouseEvent *e );
  45.     virtual void    mouseReleaseEvent( QMouseEvent *e );
  46.     virtual void    mouseDoubleClickEvent( QMouseEvent *e );
  47.  
  48. private:
  49.     QPopupMenu *pop;
  50.     QPixmap pm;
  51.     QString tip;
  52.  
  53.     // system-dependant part
  54.     class TrayIconPrivate;
  55.     TrayIconPrivate *d;
  56.     void sysInstall();
  57.     void sysRemove();
  58.     void sysUpdateIcon();
  59.     void sysUpdateToolTip();
  60. };
  61.  
  62. #endif //TRAYICON_H
  63.